package com.buercorp.wangyu.file;

import java.io.*;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;

/**
 * 压缩单个文件
 *
 * @author liyiyu
 */
public class FileTest16 {
    public static void main(String[] args) throws IOException {
        // 1.创建一个File表示要压缩的文件
        File src = new File("filejava/java10.txt");
        // 2.创建一个File表示解压的目的地
        File dest = new File("D:\\DevelopSpace\\IdeaSpace\\wy-test-demo");
        // 调用方法 要压缩的文件 压缩包的位置
        tozip(src, dest);

    }

    private static void tozip(File src, File dest) throws IOException {
        // 创建压缩流关联压缩包
        ZipOutputStream zos = new ZipOutputStream(new FileOutputStream(new File(dest, "filejava/javazip.zip")));
        // 创建ZipEntry对象，表示压缩包里面的每一个文件和文件夹
        ZipEntry entry = new ZipEntry("filejava/java10.txt");
        // 把ZipEntry对象放到压缩包当中
        zos.putNextEntry(entry);
        // 把src文件的数据写到压缩包文件中
        FileInputStream fis = new FileInputStream(src);
        int len;
        byte[] bytes = new byte[1024];
        while ((len = fis.read(bytes)) != -1) {
            zos.write(bytes, 0, len);
        }
        zos.closeEntry();
        zos.close();
    }
}
